package com.cskaoyan.javase.basic._9control;

import java.util.Scanner;

/**
 * 关于if,if多分支等结构的使用
 * 如何写出更好,更加优秀的if选择结构呢?
 * if(condition){
 *     statement;
 * }
 * 给出以下几点建议:
 *      1.condition,if的选择判断条件表达式,建议写的清晰,避免过于复杂,增加代码可读性.
 *          大括号在代码中出现,会明显增加代码层级,所以要尽量少写大括号
 *          而如果大括号不可避免时,要尽量把更少的代码放进大括号里,减少代码层级的复杂性
 *
 *      2.对于if当中执行的statement语句,可选择时,应该尽量少,让代码更清晰可读.
 *      3.if在很多时候需要写else分支,但是要尽量避免不必须的else分支出现
 *          else分支越少,if的逻辑越简单,if可读性更好
 *
 * if书写时,如何避免/减少出现else分支呢? 使用return关键字
 * 举一个很经典的案例：
 * 键盘录入一个int数值num，然后根据要求输出：
 * 如果num大于0，输出："这个数是大于0的！"
 * 如果num等于0，输出："这个数是等于0的！"
 * 如果num小于0，输出："这个数是小于0的！"
 *
 * 实际上在Java代码中，绝大多数if...else（if双分支）都是不需要写else的
 * else都可以通过return去省略它
 *
 * @since 11:06
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请键盘录入一个int整数:");
        int num = sc.nextInt();
        /*if (num > 0){
            System.out.println("这个数是大于0的!");
        }else if (num == 0){
            System.out.println("这个数是等于0的!");
        }else {
            System.out.println("这个数是小于0的!");
        }*/
        // 以上else分支其实都是多余的,一个都不需要,使用return去掉else分支
        if (num > 0) {
            System.out.println("这个数是大于0的!");
            return;
        }
        // 代码如果能够继续执行,说明num小于等于0,这里就能省略else了
        if (num == 0){
            System.out.println("这个数是等于0的!");
            return;
        }
        // 代码如果能够继续执行,说明num小于0,这时就不需要任何判断了
        System.out.println("这个数是小于0的!");
    }
}
